05.16 일지
🎯 Fragment LifeCycle 공부 2
: 다른 Fragment로 변경되는 상황에서 기존 Fragment View가 유지돼서 돌아왔을 때 View가 겹쳐서 보이는 문제핸들링을 위해서
참고: https://developer.android.com/guide/fragments/lifecycle
State & callback Flow
[[ STATE
- (callback
) → STATE
]]
INITIALIZED
- ( onCreate()
) → CREATE
백 스택
: LifeCycle을 이해하기 위해 필요한 개념
작업
사용자가 특정 작업을 할 때 상호작용하는 활동의 컬렉션
활동
백 스택에 순서대로 정렬되는 단위
keypoint: 스택의 맨 윗 활동이 포커싱 == 가장 최근의 활동 1개만 처리
나머지 활동들은 맥락을 유지한채 중지, 다시 포커싱을 받으면 실행
* 활동이 여러 번 인스턴스화될 수 있다
: 둘 이상의 활동으로부터 특정 활동을 시작하도록 허용하면
😀 ⇒ 문제해결을 위한 포인트!
현재 상황
Navigating 하고 돌아올 때 스택의 구조 - [ Fragment New | 다른 페이지 | Fragment Old ]로 유지가 되어 중첩되어 화면에 뜨게 되는 것
😀 ⇒ Navigating 할 때, Fragment Old를 pop한 후 Navigate하기
작업관리
방식을 이용해서, 활동이 시작될 때 백 스택의 맨 위에 새 인스턴스가 생성되는 대신 활동의 기존 인스턴스가 앞으로 나오도록 할 수 있다고 한다..
https://developer.android.com/guide/components/activities/tasks-and-back-stack?hl=ko#ManagingTasks
🎯 새로운 문제
: Navigation으로 다른 Fragment로 화면이동을 했다가 다시 돌아올 때, 백 스택에 새 Fragment 인스턴스를 생성하는 대신 기존에 있던 인스턴스를 백 스택의 앞으로 나올 수 있게 하기
⇒ 구체화된 질문을 chatGPT에 물어봤다.
in navigation graph XML
<action />
app:popUpTo="@id/homeFragment"
app:popUpToInclusive="true"
를 통해서 백 스택 앞으로 나오게 정의
😞 ⇒ 실패